package com.itheima.pojo;

import com.fasterxml.jackson.annotation.JsonFormat;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Size;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Emp {
    private Integer id;
    @NotBlank(message = "用户名不能为空")
    @Size(min = 2, max = 4, message = "用户名长度必须在2-4之间")
    private String username;
    private String password;
    private String name;
    /**
     * 性别, 1:男, 2:女
     */
    private Integer gender;
    @NotBlank(message = "手机号不能为空")
    // ^以什么开始,$以什么结尾
    // 1 开头，3-9任取1位，9位  \d 数字0-9  {量词} 前面字符出现次数
    @Pattern(regexp = "^1[3-9]\\d{9}$", message = "手机号格式不正确,手机必须11位数字，是正常的手机号码")
    private String phone;
    /**
     * 职位, 1 班主任, 2 讲师 , 3 学工主管, 4 教研主管, 5 咨询师
     */
    private Integer job;
    private Integer salary;
    private String image;
    private LocalDate entryDate;
    private Integer deptId;
    //jsonFormat: 时间格式化，返回给前端时进行格式输出
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;

    private String deptName;//员工列表页面展示，部门名称

    /**
     * 员工的工作经历
     */
    private List<EmpExpr> exprList;
}
